main() {
  // 实例化子类
  Student s1 = Student(1, '666qe', 18);
  s1.sayId();
  // 实例化老师类
  Teacher t1 = Teacher('鸿蒙', '李四', 18);
  t1.saySubject();
}

//定义一个父亲
class Person {
  String name ;
  int age ;
  // 定义构造函数
  Person(this.name, this.age);

  //定义方法
  void say() {
    print('我是$name,我今年$age岁');
  }
}

//定义子类-学生类
class Student extends Person {
  int id;
  // 定义构造函数
  //简写情况
  // Student(this.id,super.name,super.age);
  // 不简写情况
  Student(this.id, String name, int age) : super(name, age);


  //定义方法
  void sayId() {
    super.age = 20;
    // 调用父类方法
    super.say();
    print('我是$name,我今年$age岁,我是学生,我的学号是$id');
  }
}

// 定义子类 - 老师类
class Teacher extends Person {
  // 定义学科属性
  String subject;
  // 定义构造函数
  Teacher(this.subject,super.name,super.age);

  // 定义方法
  void saySubject() {
    // 调用父类方法
    super.say();
    print('我是老师，我教的学科是$subject');
  }
}
